// storageUtil.js

/**
 * 安全获取 localStorage 中的 JSON 数据
 * @param {string} key - 键名
 * @param {*} defaultValue - 解析失败时的默认值
 * @returns {*} - 解析后的对象或默认值
 */
export function getJSONFromLocalStorage(key, defaultValue = null) {
  try {
    const item = localStorage.getItem(key)
    return item ? JSON.parse(item) : defaultValue
  } catch (error) {
    console.warn(`⚠️ 读取 localStorage.${key} 失败:`, error)
    return defaultValue
  }
}

/**
 * 将对象安全写入 localStorage（自动序列化）
 * @param {string} key - 键名
 * @param {*} value - 要存储的值（对象/字符串）
 */
export function setJSONToLocalStorage(key, value) {
  try {
    const jsonString = typeof value === 'string' ? value : JSON.stringify(value)
    localStorage.setItem(key, jsonString)
  } catch (error) {
    console.error(`❌ 写入 localStorage.${key} 失败:`, error)
  }
}

/**
 * 删除 localStorage 的某项
 * @param {string} key - 键名
 */
export function removeFromLocalStorage(key) {
  try {
    localStorage.removeItem(key)
  } catch (error) {
    console.error(`❌ 删除 localStorage.${key} 失败:`, error)
  }
}
